package si.yun.dao;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: 微圈分类dao层接口
 * @Description: TODO
 * @Author: 李振海
 * @Date 2021/10/18 10:09
 */
public interface MicroCircleDao {
    //获取微圈分类；
    List<Map<String, Object>> selForumClass();

    //获取微圈分类下的微圈
    List<Map<String, Object>> selForum(@Param("acticle_category_id") Integer acticle_category_id);

    //通过微圈id获取微圈详情页面的具体信息
    Map<String, Object> selMicrocircleDetails(@Param("id") Integer id);

    //当文章点击时该文章的点击量增加1
    int updMicrocircleDetails(@Param("id") Integer id);

    //通过微圈id获取该微圈下相对应的评论
    List<Map<String, Object>> selCommentData(@Param("id") Integer id);

    //对当前微圈进行评论
    int addComment(@Param("m") Map<String, Object> map);

    //判断当前登录的用户是否已经收藏查看的微圈
    int selCollection(@Param("map") Map<String, Object> map, @Param("ind") Integer ind);

    //判断当前登录的用户是否已经点赞查看的微圈
    int selFabulous(@Param("map") Map<String, Object> map, @Param("ind") Integer ind);

    //当前登录用户收藏此条微圈
    int addCollection(@Param("map") Map<String, Object> map);

    //当前登录用户取消收藏此条微圈
    int DelCancelCollection(@Param("map") Map<String, Object> map);

    //当前登录用户取消点赞此条微圈
    int DelFabulous(@Param("map") Map<String, Object> map);

    //当前登录用户点赞此条微圈
    int addFabulous(@Param("map") Map<String, Object> map, @Param("ind") Integer ind);

    //获取该微圈分类下相关的推荐
    List<Map<String, Object>> selRecommend(@Param("id") Integer id);

    //获取微圈分类数据（微圈分类id，微圈分类名称）
    List<String> selReleaseMicroClassData();

    //通过微圈名称获取微圈id
    int selClassId(@Param("className") String className);

    //添加微圈(className微圈名称,microData微圈内容,userId用户id,title标题)
    int addReleaseMicroData(@Param("map") Map<String, Object> map);

    //点赞
    int addFabulous1(@Param("map") Map<String, Object> map);

    //取消点赞
    int DelFabulous1(@Param("map") Map<String, Object> map);

    //将搜索内容去和搜索关键字进行匹配，如果相匹配搜索关键字表的搜索次数加1
    Integer selEsData(@Param("content") String content);
    int updEsData(@Param("m") Integer m);

    //获取热门搜索记录
    List<Map<String, Object>> selPopularSearch();

    //修改提交
    int updReleaseMicroData(@Param("map") Map<String, Object> map);

    //微圈分享数量+1
    Integer addMicroCircleSharing(@Param("id") Integer id);

    //删除个人评论 更改状态为删除
    Integer updCommentStatusDelwq(@Param("commentId") Integer commentId,@Param("userId") Integer userId,@Param("commodityId") Integer commodityId);

    //评论点赞
    Integer addDetailsLike(@Param("commentId") Integer commentId);
}
